package com.ourteam.product.requirement.dao;

/**
 * Template Name : DAO数据对象
 * Template Version : 1
 * Template Last Modfiy Date : Fri Aug 18 15:51:23 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:14
  * Warning ! This file will be overwrite when regenerate !
  *
 */
import org.apache.commons.lang.StringUtils;


public class ProductVersion implements java.io.Serializable {
    private long id;

    /**
     * Attribute id Be Seted Falg
     */
    private boolean idSetted = false;

    /**
    * Attribute id is Null Falg
    */
    private boolean idNull = false;
    private long productDefineId;

    /**
     * Attribute productDefineId Be Seted Falg
     */
    private boolean productDefineIdSetted = false;

    /**
    * Attribute productDefineId is Null Falg
    */
    private boolean productDefineIdNull = false;
    private String productVersion;

    /**
     * Attribute productVersion Be Seted Falg
     */
    private boolean productVersionSetted = false;

    /**
    * Attribute productVersion is Null Falg
    */
    private boolean productVersionNull = false;
    private String remarks;

    /**
     * Attribute remarks Be Seted Falg
     */
    private boolean remarksSetted = false;

    /**
    * Attribute remarks is Null Falg
    */
    private boolean remarksNull = false;
    private String status;

    /**
     * Attribute status Be Seted Falg
     */
    private boolean statusSetted = false;

    /**
    * Attribute status is Null Falg
    */
    private boolean statusNull = false;
    private String productVersionType;

    /**
     * Attribute productVersionType Be Seted Falg
     */
    private boolean productVersionTypeSetted = false;

    /**
    * Attribute productVersionType is Null Falg
    */
    private boolean productVersionTypeNull = false;
    private long parentVersionId;

    /**
     * Attribute parentVersionId Be Seted Falg
     */
    private boolean parentVersionIdSetted = false;

    /**
    * Attribute parentVersionId is Null Falg
    */
    private boolean parentVersionIdNull = false;
    private java.util.Date startDate;

    /**
     * Attribute startDate Be Seted Falg
     */
    private boolean startDateSetted = false;

    /**
    * Attribute startDate is Null Falg
    */
    private boolean startDateNull = false;
    private java.util.Date endDate;

    /**
     * Attribute endDate Be Seted Falg
     */
    private boolean endDateSetted = false;

    /**
    * Attribute endDate is Null Falg
    */
    private boolean endDateNull = false;
    private java.util.Date actualStartDate;

    /**
     * Attribute actualStartDate Be Seted Falg
     */
    private boolean actualStartDateSetted = false;

    /**
    * Attribute actualStartDate is Null Falg
    */
    private boolean actualStartDateNull = false;
    private java.util.Date actualEndDate;

    /**
     * Attribute actualEndDate Be Seted Falg
     */
    private boolean actualEndDateSetted = false;

    /**
    * Attribute actualEndDate is Null Falg
    */
    private boolean actualEndDateNull = false;
    private int sortIndex;

    /**
     * Attribute sortIndex Be Seted Falg
     */
    private boolean sortIndexSetted = false;

    /**
    * Attribute sortIndex is Null Falg
    */
    private boolean sortIndexNull = false;
    private String productName;

    /**
     * Attribute productName Be Seted Falg
     */
    private boolean productNameSetted = false;

    /**
    * Attribute productName is Null Falg
    */
    private boolean productNameNull = false;
    private String productCdoe;

    /**
     * Attribute productCdoe Be Seted Falg
     */
    private boolean productCdoeSetted = false;

    /**
    * Attribute productCdoe is Null Falg
    */
    private boolean productCdoeNull = false;
    private String productStatus;

    /**
     * Attribute productStatus Be Seted Falg
     */
    private boolean productStatusSetted = false;

    /**
    * Attribute productStatus is Null Falg
    */
    private boolean productStatusNull = false;
    private String productRemarks;

    /**
     * Attribute productRemarks Be Seted Falg
     */
    private boolean productRemarksSetted = false;

    /**
    * Attribute productRemarks is Null Falg
    */
    private boolean productRemarksNull = false;
    private String parentProductVersion;

    /**
     * Attribute parentProductVersion Be Seted Falg
     */
    private boolean parentProductVersionSetted = false;

    /**
    * Attribute parentProductVersion is Null Falg
    */
    private boolean parentProductVersionNull = false;
    private String parentProductVersionType;

    /**
     * Attribute parentProductVersionType Be Seted Falg
     */
    private boolean parentProductVersionTypeSetted = false;

    /**
    * Attribute parentProductVersionType is Null Falg
    */
    private boolean parentProductVersionTypeNull = false;
    private String parentProductVersionStatus;

    /**
     * Attribute parentProductVersionStatus Be Seted Falg
     */
    private boolean parentProductVersionStatusSetted = false;

    /**
    * Attribute parentProductVersionStatus is Null Falg
    */
    private boolean parentProductVersionStatusNull = false;

    public ProductVersion() {
        super();
    }

    /**
         * Get id
         *
         * @return long
         */
    final public long getId() {
        return id;
    }

    /**
     * Set id
     *
     * @param long
     */
    final public void setId(long id) {
        this.id = id;

        this.idSetted = true;

        this.setIdNull(false);
    }

    /**
     * Get id Has Been Setted
     *
     * @return boolean
     */
    final public boolean isIdSetted() {
        return this.idSetted;
    }

    /**
     * Set id Null
     *
     */
    final public void setIdNull() {
        this.idNull = true;
    }

    final public void setIdNull(boolean aNullFlag) {
        this.idNull = aNullFlag;
    }

    final public boolean isIdNull() {
        return this.idNull;
    }

    /**
         * Get productDefineId
         *
         * @return long
         */
    final public long getProductDefineId() {
        return productDefineId;
    }

    /**
     * Set productDefineId
     *
     * @param long
     */
    final public void setProductDefineId(long productDefineId) {
        this.productDefineId = productDefineId;

        this.productDefineIdSetted = true;

        this.setProductDefineIdNull(false);
    }

    /**
     * Get productDefineId Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductDefineIdSetted() {
        return this.productDefineIdSetted;
    }

    /**
     * Set productDefineId Null
     *
     */
    final public void setProductDefineIdNull() {
        this.productDefineIdNull = true;
    }

    final public void setProductDefineIdNull(boolean aNullFlag) {
        this.productDefineIdNull = aNullFlag;
    }

    final public boolean isProductDefineIdNull() {
        return this.productDefineIdNull;
    }

    /**
         * Get productVersion
         *
         * @return String
         */
    final public String getProductVersion() {
        if (isProductVersionNull()) {
            return null;
        } else {
            return StringUtils.trim(productVersion);
        }
    }

    /**
     * Set productVersion
     *
     * @param String
     */
    final public void setProductVersion(String productVersion) {
        this.productVersion = StringUtils.trim(productVersion);

        this.productVersionSetted = true;

        this.setProductVersionNull(this.productVersion == null);
    }

    /**
     * Get productVersion Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductVersionSetted() {
        return this.productVersionSetted;
    }

    /**
     * Set productVersion Null
     *
     */
    final public void setProductVersionNull() {
        this.productVersionNull = true;
    }

    final public void setProductVersionNull(boolean aNullFlag) {
        this.productVersionNull = aNullFlag;
    }

    final public boolean isProductVersionNull() {
        return this.productVersionNull;
    }

    /**
         * Get remarks
         *
         * @return String
         */
    final public String getRemarks() {
        if (isRemarksNull()) {
            return null;
        } else {
            return StringUtils.trim(remarks);
        }
    }

    /**
     * Set remarks
     *
     * @param String
     */
    final public void setRemarks(String remarks) {
        this.remarks = StringUtils.trim(remarks);

        this.remarksSetted = true;

        this.setRemarksNull(this.remarks == null);
    }

    /**
     * Get remarks Has Been Setted
     *
     * @return boolean
     */
    final public boolean isRemarksSetted() {
        return this.remarksSetted;
    }

    /**
     * Set remarks Null
     *
     */
    final public void setRemarksNull() {
        this.remarksNull = true;
    }

    final public void setRemarksNull(boolean aNullFlag) {
        this.remarksNull = aNullFlag;
    }

    final public boolean isRemarksNull() {
        return this.remarksNull;
    }

    /**
         * Get status
         *
         * @return String
         */
    final public String getStatus() {
        if (isStatusNull()) {
            return null;
        } else {
            return StringUtils.trim(status);
        }
    }

    /**
     * Set status
     *
     * @param String
     */
    final public void setStatus(String status) {
        this.status = StringUtils.trim(status);

        this.statusSetted = true;

        this.setStatusNull(this.status == null);
    }

    /**
     * Get status Has Been Setted
     *
     * @return boolean
     */
    final public boolean isStatusSetted() {
        return this.statusSetted;
    }

    /**
     * Set status Null
     *
     */
    final public void setStatusNull() {
        this.statusNull = true;
    }

    final public void setStatusNull(boolean aNullFlag) {
        this.statusNull = aNullFlag;
    }

    final public boolean isStatusNull() {
        return this.statusNull;
    }

    /**
         * Get productVersionType
         *
         * @return String
         */
    final public String getProductVersionType() {
        if (isProductVersionTypeNull()) {
            return null;
        } else {
            return StringUtils.trim(productVersionType);
        }
    }

    /**
     * Set productVersionType
     *
     * @param String
     */
    final public void setProductVersionType(String productVersionType) {
        this.productVersionType = StringUtils.trim(productVersionType);

        this.productVersionTypeSetted = true;

        this.setProductVersionTypeNull(this.productVersionType == null);
    }

    /**
     * Get productVersionType Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductVersionTypeSetted() {
        return this.productVersionTypeSetted;
    }

    /**
     * Set productVersionType Null
     *
     */
    final public void setProductVersionTypeNull() {
        this.productVersionTypeNull = true;
    }

    final public void setProductVersionTypeNull(boolean aNullFlag) {
        this.productVersionTypeNull = aNullFlag;
    }

    final public boolean isProductVersionTypeNull() {
        return this.productVersionTypeNull;
    }

    /**
         * Get parentVersionId
         *
         * @return long
         */
    final public long getParentVersionId() {
        return parentVersionId;
    }

    /**
     * Set parentVersionId
     *
     * @param long
     */
    final public void setParentVersionId(long parentVersionId) {
        this.parentVersionId = parentVersionId;

        this.parentVersionIdSetted = true;

        this.setParentVersionIdNull(false);
    }

    /**
     * Get parentVersionId Has Been Setted
     *
     * @return boolean
     */
    final public boolean isParentVersionIdSetted() {
        return this.parentVersionIdSetted;
    }

    /**
     * Set parentVersionId Null
     *
     */
    final public void setParentVersionIdNull() {
        this.parentVersionIdNull = true;
    }

    final public void setParentVersionIdNull(boolean aNullFlag) {
        this.parentVersionIdNull = aNullFlag;
    }

    final public boolean isParentVersionIdNull() {
        return this.parentVersionIdNull;
    }

    /**
         * Get startDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getStartDate() {
        return startDate;
    }

    /**
     * Set startDate
     *
     * @param java.util.Date
     */
    final public void setStartDate(java.util.Date startDate) {
        this.startDate = startDate;

        this.startDateSetted = true;

        this.setStartDateNull(this.startDate == null);
    }

    /**
     * Get startDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isStartDateSetted() {
        return this.startDateSetted;
    }

    /**
     * Set startDate Null
     *
     */
    final public void setStartDateNull() {
        this.startDateNull = true;
    }

    final public void setStartDateNull(boolean aNullFlag) {
        this.startDateNull = aNullFlag;
    }

    final public boolean isStartDateNull() {
        return this.startDateNull;
    }

    /**
         * Get endDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getEndDate() {
        return endDate;
    }

    /**
     * Set endDate
     *
     * @param java.util.Date
     */
    final public void setEndDate(java.util.Date endDate) {
        this.endDate = endDate;

        this.endDateSetted = true;

        this.setEndDateNull(this.endDate == null);
    }

    /**
     * Get endDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isEndDateSetted() {
        return this.endDateSetted;
    }

    /**
     * Set endDate Null
     *
     */
    final public void setEndDateNull() {
        this.endDateNull = true;
    }

    final public void setEndDateNull(boolean aNullFlag) {
        this.endDateNull = aNullFlag;
    }

    final public boolean isEndDateNull() {
        return this.endDateNull;
    }

    /**
         * Get actualStartDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getActualStartDate() {
        return actualStartDate;
    }

    /**
     * Set actualStartDate
     *
     * @param java.util.Date
     */
    final public void setActualStartDate(java.util.Date actualStartDate) {
        this.actualStartDate = actualStartDate;

        this.actualStartDateSetted = true;

        this.setActualStartDateNull(this.actualStartDate == null);
    }

    /**
     * Get actualStartDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isActualStartDateSetted() {
        return this.actualStartDateSetted;
    }

    /**
     * Set actualStartDate Null
     *
     */
    final public void setActualStartDateNull() {
        this.actualStartDateNull = true;
    }

    final public void setActualStartDateNull(boolean aNullFlag) {
        this.actualStartDateNull = aNullFlag;
    }

    final public boolean isActualStartDateNull() {
        return this.actualStartDateNull;
    }

    /**
         * Get actualEndDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getActualEndDate() {
        return actualEndDate;
    }

    /**
     * Set actualEndDate
     *
     * @param java.util.Date
     */
    final public void setActualEndDate(java.util.Date actualEndDate) {
        this.actualEndDate = actualEndDate;

        this.actualEndDateSetted = true;

        this.setActualEndDateNull(this.actualEndDate == null);
    }

    /**
     * Get actualEndDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isActualEndDateSetted() {
        return this.actualEndDateSetted;
    }

    /**
     * Set actualEndDate Null
     *
     */
    final public void setActualEndDateNull() {
        this.actualEndDateNull = true;
    }

    final public void setActualEndDateNull(boolean aNullFlag) {
        this.actualEndDateNull = aNullFlag;
    }

    final public boolean isActualEndDateNull() {
        return this.actualEndDateNull;
    }

    /**
         * Get sortIndex
         *
         * @return int
         */
    final public int getSortIndex() {
        return sortIndex;
    }

    /**
     * Set sortIndex
     *
     * @param int
     */
    final public void setSortIndex(int sortIndex) {
        this.sortIndex = sortIndex;

        this.sortIndexSetted = true;

        this.setSortIndexNull(false);
    }

    /**
     * Get sortIndex Has Been Setted
     *
     * @return boolean
     */
    final public boolean isSortIndexSetted() {
        return this.sortIndexSetted;
    }

    /**
     * Set sortIndex Null
     *
     */
    final public void setSortIndexNull() {
        this.sortIndexNull = true;
    }

    final public void setSortIndexNull(boolean aNullFlag) {
        this.sortIndexNull = aNullFlag;
    }

    final public boolean isSortIndexNull() {
        return this.sortIndexNull;
    }

    /**
         * Get productName
         *
         * @return String
         */
    final public String getProductName() {
        if (isProductNameNull()) {
            return null;
        } else {
            return StringUtils.trim(productName);
        }
    }

    /**
     * Set productName
     *
     * @param String
     */
    final public void setProductName(String productName) {
        this.productName = StringUtils.trim(productName);

        this.productNameSetted = true;

        this.setProductNameNull(this.productName == null);
    }

    /**
     * Get productName Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductNameSetted() {
        return this.productNameSetted;
    }

    /**
     * Set productName Null
     *
     */
    final public void setProductNameNull() {
        this.productNameNull = true;
    }

    final public void setProductNameNull(boolean aNullFlag) {
        this.productNameNull = aNullFlag;
    }

    final public boolean isProductNameNull() {
        return this.productNameNull;
    }

    /**
         * Get productCdoe
         *
         * @return String
         */
    final public String getProductCdoe() {
        if (isProductCdoeNull()) {
            return null;
        } else {
            return StringUtils.trim(productCdoe);
        }
    }

    /**
     * Set productCdoe
     *
     * @param String
     */
    final public void setProductCdoe(String productCdoe) {
        this.productCdoe = StringUtils.trim(productCdoe);

        this.productCdoeSetted = true;

        this.setProductCdoeNull(this.productCdoe == null);
    }

    /**
     * Get productCdoe Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductCdoeSetted() {
        return this.productCdoeSetted;
    }

    /**
     * Set productCdoe Null
     *
     */
    final public void setProductCdoeNull() {
        this.productCdoeNull = true;
    }

    final public void setProductCdoeNull(boolean aNullFlag) {
        this.productCdoeNull = aNullFlag;
    }

    final public boolean isProductCdoeNull() {
        return this.productCdoeNull;
    }

    /**
         * Get productStatus
         *
         * @return String
         */
    final public String getProductStatus() {
        if (isProductStatusNull()) {
            return null;
        } else {
            return StringUtils.trim(productStatus);
        }
    }

    /**
     * Set productStatus
     *
     * @param String
     */
    final public void setProductStatus(String productStatus) {
        this.productStatus = StringUtils.trim(productStatus);

        this.productStatusSetted = true;

        this.setProductStatusNull(this.productStatus == null);
    }

    /**
     * Get productStatus Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductStatusSetted() {
        return this.productStatusSetted;
    }

    /**
     * Set productStatus Null
     *
     */
    final public void setProductStatusNull() {
        this.productStatusNull = true;
    }

    final public void setProductStatusNull(boolean aNullFlag) {
        this.productStatusNull = aNullFlag;
    }

    final public boolean isProductStatusNull() {
        return this.productStatusNull;
    }

    /**
         * Get productRemarks
         *
         * @return String
         */
    final public String getProductRemarks() {
        if (isProductRemarksNull()) {
            return null;
        } else {
            return StringUtils.trim(productRemarks);
        }
    }

    /**
     * Set productRemarks
     *
     * @param String
     */
    final public void setProductRemarks(String productRemarks) {
        this.productRemarks = StringUtils.trim(productRemarks);

        this.productRemarksSetted = true;

        this.setProductRemarksNull(this.productRemarks == null);
    }

    /**
     * Get productRemarks Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductRemarksSetted() {
        return this.productRemarksSetted;
    }

    /**
     * Set productRemarks Null
     *
     */
    final public void setProductRemarksNull() {
        this.productRemarksNull = true;
    }

    final public void setProductRemarksNull(boolean aNullFlag) {
        this.productRemarksNull = aNullFlag;
    }

    final public boolean isProductRemarksNull() {
        return this.productRemarksNull;
    }

    /**
         * Get parentProductVersion
         *
         * @return String
         */
    final public String getParentProductVersion() {
        if (isParentProductVersionNull()) {
            return null;
        } else {
            return StringUtils.trim(parentProductVersion);
        }
    }

    /**
     * Set parentProductVersion
     *
     * @param String
     */
    final public void setParentProductVersion(String parentProductVersion) {
        this.parentProductVersion = StringUtils.trim(parentProductVersion);

        this.parentProductVersionSetted = true;

        this.setParentProductVersionNull(this.parentProductVersion == null);
    }

    /**
     * Get parentProductVersion Has Been Setted
     *
     * @return boolean
     */
    final public boolean isParentProductVersionSetted() {
        return this.parentProductVersionSetted;
    }

    /**
     * Set parentProductVersion Null
     *
     */
    final public void setParentProductVersionNull() {
        this.parentProductVersionNull = true;
    }

    final public void setParentProductVersionNull(boolean aNullFlag) {
        this.parentProductVersionNull = aNullFlag;
    }

    final public boolean isParentProductVersionNull() {
        return this.parentProductVersionNull;
    }

    /**
         * Get parentProductVersionType
         *
         * @return String
         */
    final public String getParentProductVersionType() {
        if (isParentProductVersionTypeNull()) {
            return null;
        } else {
            return StringUtils.trim(parentProductVersionType);
        }
    }

    /**
     * Set parentProductVersionType
     *
     * @param String
     */
    final public void setParentProductVersionType(
        String parentProductVersionType) {
        this.parentProductVersionType = StringUtils.trim(parentProductVersionType);

        this.parentProductVersionTypeSetted = true;

        this.setParentProductVersionTypeNull(this.parentProductVersionType == null);
    }

    /**
     * Get parentProductVersionType Has Been Setted
     *
     * @return boolean
     */
    final public boolean isParentProductVersionTypeSetted() {
        return this.parentProductVersionTypeSetted;
    }

    /**
     * Set parentProductVersionType Null
     *
     */
    final public void setParentProductVersionTypeNull() {
        this.parentProductVersionTypeNull = true;
    }

    final public void setParentProductVersionTypeNull(boolean aNullFlag) {
        this.parentProductVersionTypeNull = aNullFlag;
    }

    final public boolean isParentProductVersionTypeNull() {
        return this.parentProductVersionTypeNull;
    }

    /**
         * Get parentProductVersionStatus
         *
         * @return String
         */
    final public String getParentProductVersionStatus() {
        if (isParentProductVersionStatusNull()) {
            return null;
        } else {
            return StringUtils.trim(parentProductVersionStatus);
        }
    }

    /**
     * Set parentProductVersionStatus
     *
     * @param String
     */
    final public void setParentProductVersionStatus(
        String parentProductVersionStatus) {
        this.parentProductVersionStatus = StringUtils.trim(parentProductVersionStatus);

        this.parentProductVersionStatusSetted = true;

        this.setParentProductVersionStatusNull(this.parentProductVersionStatus == null);
    }

    /**
     * Get parentProductVersionStatus Has Been Setted
     *
     * @return boolean
     */
    final public boolean isParentProductVersionStatusSetted() {
        return this.parentProductVersionStatusSetted;
    }

    /**
     * Set parentProductVersionStatus Null
     *
     */
    final public void setParentProductVersionStatusNull() {
        this.parentProductVersionStatusNull = true;
    }

    final public void setParentProductVersionStatusNull(boolean aNullFlag) {
        this.parentProductVersionStatusNull = aNullFlag;
    }

    final public boolean isParentProductVersionStatusNull() {
        return this.parentProductVersionStatusNull;
    }

    public int hashCode() {
        final int prime = 31;
        int result = 1;

        result = (prime * result) + (int) (getId() ^ (getId() >>> 32));

        return result;
    }

    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }

        if ((obj instanceof ProductVersion) == false) {
            return false;
        }

        ProductVersion other = (ProductVersion) obj;

        if (getId() != other.getId()) {
            return false;
        }

        return true;
    }

    public String toString() {
        StringBuffer buffer = new StringBuffer();

        buffer.append("[");

        buffer.append("sortIndex=");
        buffer.append(this.sortIndex);

        buffer.append("productName=");
        buffer.append(this.productName);

        buffer.append("productCdoe=");
        buffer.append(this.productCdoe);

        buffer.append("productStatus=");
        buffer.append(this.productStatus);

        buffer.append("startDate=");
        buffer.append(this.startDate);

        buffer.append("endDate=");
        buffer.append(this.endDate);

        buffer.append("actualStartDate=");
        buffer.append(this.actualStartDate);

        buffer.append("actualEndDate=");
        buffer.append(this.actualEndDate);

        buffer.append("id=");
        buffer.append(this.id);

        buffer.append("productDefineId=");
        buffer.append(this.productDefineId);

        buffer.append("productVersion=");
        buffer.append(this.productVersion);

        buffer.append("remarks=");
        buffer.append(this.remarks);

        buffer.append("status=");
        buffer.append(this.status);

        buffer.append("productVersionType=");
        buffer.append(this.productVersionType);

        buffer.append("parentVersionId=");
        buffer.append(this.parentVersionId);

        buffer.append("productRemarks=");
        buffer.append(this.productRemarks);

        buffer.append("parentProductVersion=");
        buffer.append(this.parentProductVersion);

        buffer.append("parentProductVersionType=");
        buffer.append(this.parentProductVersionType);

        buffer.append("parentProductVersionStatus=");
        buffer.append(this.parentProductVersionStatus);

        buffer.append("]");

        return buffer.toString();
    }
}
